//
//  ViewController.m
//  21-NSURLRequestAndResponse
//
//  Created by dllo on 16/8/11.
//  Copyright © 2016年 LST. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    // NSURL 负责请求地址
    NSURL *baiduURL = [NSURL URLWithString:@"http://www.baidu.com"];
    // 1.absoluteString : 完整的URL对应的字符串
    NSLog(@"baiduURL.absoluteString : %@", baiduURL.absoluteString);
    // 2.host : 主机地址/ 域名
    NSLog(@"baiduURL.host : %@", baiduURL.host);
    // 3.pash : 主机地址/ 域名后对应的路径
    NSLog(@"baiduURL.path : %@", baiduURL.path);
    // 4.query : ? 以后的内容
    NSLog(@"baiduURL.query : %@", baiduURL.query);
    // 5.scheme : URL所遵循的协议
    NSLog(@"baiduURL.scheme:%@", baiduURL.scheme);
    // 6.resourceSpecifier : 除了协议的部分
    NSLog(@"baiduURL.resourceSpecifier : %@", baiduURL.resourceSpecifier);
    // 不可变请求和可变请求
    // 1.NSURLRequest
    NSURLRequest *baiduRequest = [NSURLRequest requestWithURL:baiduURL];
    // 不可变的什么都不能改, 只能获取
    // 2.NSMutableURLRequest
    // 一般处理网络请求, 都使用可变的
    NSMutableURLRequest *baiduMutableRequest = [NSMutableURLRequest requestWithURL:baiduURL];
    // 1.超时时间, 一个请求持续多久会失败
    baiduMutableRequest.timeoutInterval = 10000;
    // 2.HTTPMethod 请求的方法, GET POST PUT DELETE
    baiduMutableRequest.HTTPMethod = @"GET";
    // 3.allHTTPHeaderFields 设置, 网络请求头
    baiduMutableRequest.allHTTPHeaderFields = @{@"User -Agent" : @"iOS 10.0 / iPhone 8, 1"};
    // 根据字典特性, 相同key 情况下, 后填入的值, 会覆盖前面的值
    [baiduMutableRequest setValue:@"iOS 10.0 / iPhone9, 1" forHTTPHeaderField:@"User - Agent"];
    [baiduMutableRequest valueForHTTPHeaderField:@"User-Agent"];
    NSLog(@"%@", baiduMutableRequest.allHTTPHeaderFields);
    // 4. HTTPBody (一般POST请求时, 才会使用)
    // 一般情况下, 都是字典/ 字符串转换成的DATA
    baiduMutableRequest.HTTPBody = [NSData data];
    
    // NSURLResponse 响应
    NSHTTPURLResponse *response = [[NSHTTPURLResponse alloc] initWithURL:baiduURL statusCode:200 HTTPVersion:@"HTTP / 1.1" headerFields:@{@"date" : [NSDate date]}];
    // 1.response.statusCode; 状态码
    // 2.response.allHeaderFields; 响应头
    // 内容格式 编码
    // 时间 日期
    // 缓存一些内容
    // Content-Type : application/json;charset:utf-8
    
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
